import pandas as pd

import PathUtil


def t(g):
    ip = g['BRAS_IP'].tolist()
    port = g['BRAS网元端口'].tolist()
    olt = g['OLT网元名称'].unique().tolist()
    if len(olt) > 1:
        print(g['OLT网元名称'])
    return pd.Series({
        'OLT网元名称': olt[0],
        'BRAS1_ip': ip[0],
        'BRAS2_ip': None if len(ip) == 1 else ip[1],
        'BRAS网元端口1': port[0],
        'BRAS网元端口2': None if len(port) == 1 else port[1]
    })


def handler_olt_bars():
    df = pd.read_csv(PathUtil.OLT_BRAS资源关系表的配置查询结果(),
                     usecols=['OLT网元名称', 'OLT_IP', 'BRAS_IP', 'BRAS网元端口'],
                     encoding='gbk')
    df['BRAS网元端口'] = df['BRAS网元端口'].str.split('GigabitEthernet').str[1].fillna('')
    df = df.groupby(['OLT网元名称', 'OLT_IP', 'BRAS_IP'])['BRAS网元端口'].agg(lambda x: ';'.join(x)).reset_index()
    res = df.groupby('OLT_IP', as_index=False).apply(t, include_groups=False)
    print(res)
    res.to_csv(PathUtil.olt_bras(), index=False)


if __name__ == '__main__':
    handler_olt_bars()
